---
title: "Dashboard"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
source: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(p8105.datasets)
library(plotly)
```
```{r}
data("ny_noaa")
ny_noaa =
ny_noaa %>%
separate(date, into = c("year", "month", "day"), convert = TRUE) %>%
mutate(
tmax = as.numeric(tmax),
tmin = as.numeric(tmin))
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
scatter_data <- ny_noaa %>%
filter(month == 1) %>%
group_by(id, year) %>%
summarize(mean_tmax = mean(tmax, na.rm = TRUE), .groups = 'drop')
plot_ly(scatter_data, x = ~year, y = ~mean_tmax, type = 'scatter', mode = 'markers',
color = ~mean_tmax,
marker = list(size = 10, opacity = 0.5, line = list(color = 'rgba(255, 255, 255, 0.5)', width = 1)),
hoverinfo = 'text',
text = ~paste('Year:', year, 'Mean Tmax:', mean_tmax)) %>%
layout(title = 'Mean Maximum Temperature for January Across Years for Each Station',
xaxis = list(title = 'Year'),
yaxis = list(title = 'Mean Maximum Temperature (°C)'))
```
Column {data-width=350}
-----------------------------------------------------------------------
### Chart B
```{r}
august_data <- ny_noaa %>%
filter(month == 8) %>%
group_by(id, year) %>%
summarize(max_tmax = max(tmax, na.rm = TRUE), .groups = 'drop')
# Create the histogram with Plotly
plot_ly(august_data, x = ~max_tmax, type = "histogram",
marker = list(color = 'rgba(102, 0, 102, 0.6)'),
autobinx = FALSE,
xbins = list(start = 150, end = 350, size = 10)) %>%
layout(title = "Histogram of Maximum Temperatures in August",
xaxis = list(title = "Maximum Temperature (°C)"),
yaxis = list(title = "Frequency"))
```
### Chart C
```{r}
july_data <- ny_noaa %>%
filter(month == 7) %>%
group_by(id, year) %>%
summarize(mean_tmax = mean(tmax, na.rm = TRUE), .groups = 'drop')
plot_ly(july_data, y = ~mean_tmax, x = ~as.factor(year),
type = "box",
hoverinfo = "y+x",
boxpoints = "outliers",
marker = list(opacity = 0.6)) %>%
layout(title = "Box Plot of Mean Maximum Temperature in July",
yaxis = list(title = "Mean Maximum Temperature (°C)"),
xaxis = list(title = "Year", tickangle = 45))
```